When a computer system is installed, the vendor (the “host vendor”) will typically install software code (the “host code”) to enable the various features and functions of the system (alternatively, the code may have been preinstalled). Over time, new hardware and new functions may be added to the system, sometimes supplied by the original host vendor but often supplied by other, independent software vendors (ISVs). ISV code typically provides hooks into the host code to intercept execution of the host code and redirect control to the ISV code. After execution of the ISV code has completed, control is returned to the host code which continues execution. Such code interceptions and detours are transparent to the customer and in many cases, the customer may not even be aware of the existence of ISV code.
As will be appreciated, the interaction of ISV code with host code may cause unexpected and unexplained problems and errors. And, importantly, such interactions may make it difficult to diagnose the problems. A technician may suspect that ISV code is present but will not know where the hooks are and will not know if a problem has its origins in the host code or in some ISV code.